package com.fullstackdaytwo.rmb;

import java.util.Scanner;

/**
 * @Description: 将浮点数转换成人民币读法字符串
 * @author: Aron
 * @date: 2021.10.12
 */

/*
编写一个程序，将浮点数转换成人民币读法字符串，例如将1006.333转换成为壹仟零陆元叁角三分。
要求：
在本地创建git仓库，完成后，上传同步到gitee仓库（重新创建）
打包成可运行的jar
 */

public class RmbConvert {

    private String[] zhArr = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
    private String[] unitArr = {"分", "角", "元", "十", "百", "千"};

    private String divide(double num) {
        long integerNumer = (long) num;
        long decimalNumer = Math.round((num - integerNumer) * 100);
        String str = integerNumer + String.valueOf(decimalNumer);
        return str;
    }

    private String toZhStr(String denumStr) {
        Double dounumStr = Double.parseDouble(denumStr);
        String numStr = divide(dounumStr);
        String result = "";
        int numlen = numStr.length();
        for (int i = 0; i < numlen; i++) {
            int num = numStr.charAt(i) - 48;
            if (num != 0) {
                result += zhArr[num] + unitArr[numlen - 1 - i];
            } else if (i + 1 < numlen && i != numlen - 3) {
                int num1 = numStr.charAt(i + 1) - 48;
                if (num1 != 0) {
                    result += zhArr[num];
                } else if (i == numlen - 3) {
                    result += unitArr[2];
                }
            }
        }
        return result;

    }

    public static void main(String[] args) {
        RmbConvert rc = new RmbConvert();
//        Scanner sc = new Scanner(System.in);
//        String scStr = sc.nextLine();
        System.out.println(rc.toZhStr(args[0]));
    }
}
